Several types of non-volatile memory (NVM) systems use redundant storage schemes, such as redundant array of inexpensive disks (RAID) schemes. Such devices are subject to bad memory blocks, and several techniques to manage bad blocks are known in the art. For example, U.S. Pat. No. 7,721,146, whose disclosure is incorporated herein by reference, describes a system and method for managing bad blocks that utilizes a remapping pool formed across an array of disks to remap bad blocks formed on individual disks.
U.S. Pat. No. 8,489,946, whose disclosure is incorporated herein by reference, describes management of logically bad blocks in storage devices. At least one standard size data block of a storage device is scanned for a logically bad pattern. If the logically pad pattern is detected, a block address that is associated with the standard size data block is added to a bad block table. The logically bad pattern may have a first predefined data portion and a second predefined data portion and may be repeated the requisite number of instances to fill the standard size data block.
U.S. Pat. No. 8,301,942, whose disclosure is incorporated herein by reference, describes methods and a computer program product related to management of possibly logically bad blocks in storage devices. A logically bad pattern is placed in a standard size data block if data associated with the data block has previously been stored or is waiting to be stored, but has subsequently become lost. A data check response may be given if the logical block address is present in a Bad Block Table.
U.S. Pat. No. 8,156,392, whose disclosure is incorporated herein by reference, describes apparatus, system, and method for bad block remapping. A bad block identifier module identifies one or more data blocks on a solid-state storage element as bad blocks. A bad block mapping module accesses at least one bad block log during a start-up operation to create in memory a bad block map. Data is stored in each replacement block instead of the corresponding bad block. The bad block mapping module creates the bad block map using one of a replacement block location and a bad block mapping algorithm.
U.S. Pat. No. 8,560,922, whose disclosure is incorporated herein by reference, describes a method for bad block management for flash memory. The method includes receiving a write request that includes write data. A block of memory is identified for storing the write data. The block of memory includes a plurality of pages. A bit error rate (BER) of the block of memory is determined and expanded write data is created from the write data in response to the BER exceeding a BER threshold. The expanded write data is characterized by an expected BER that is lower than the BER threshold. The expanded write data is encoded using an error correction code (ECC). The encoded expanded write data is written to the block of memory.
U.S. Pat. No. 8,601,311, whose disclosure is incorporated herein by reference, describes system and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory. Embodiments utilize the additional over-provisioned capacity and potentially modify the stripe size to restore RAID redundancy when a storage element or path (i.e., page, block, plane, die, channel, etc.) has failed. In some cases, this may also involve reducing the RAID stripe size.
U.S. Pat. No. 7,523,257, whose disclosure is incorporated herein by reference, describes a method of managing bad blocks in a RAID storage system. The system restores physical storage media and stripe redundancy by reassigning sectors and creating a bad block tracking structure.